package top.zhangjianyong.tools.parm.wechat;

import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import top.zhangjianyong.tools.utils.XmlUtil;

import java.io.IOException;

/**
 * @author zhangjianyong
 * @since 2025/3/18 下午5:27
 */
@Slf4j
@Data
@JacksonXmlRootElement(localName = "xml") // 定义根元素名称
public class WechatResponseMessage {
    @JacksonXmlProperty(localName = "ToUserName") // 映射 XML 元素
    private String toUserName;//接收方账号（收到的OpenID）
    @JacksonXmlProperty(localName = "FromUserName") // 映射 XML 元素
    private String fromUserName;//开发者微信号
    @JacksonXmlProperty(localName = "CreateTime") // 映射 XML 元素
    private Long createTime;//消息创建时间 （整型）
    @JacksonXmlProperty(localName = "MsgType") // 映射 XML 元素
    private String msgType;//消息类型，文本为text
    @JacksonXmlProperty(localName = "Content") // 映射 XML 元素
    private String content;//文本消息内容

    // 将WechatResponseMessage对象转xml字符串的方法
    public String toXml() {

        try {
            return XmlUtil.xmlMapper.writeValueAsString(this);
        } catch (IOException e) {
            log.error(e.getMessage(), e);
            return "";
        }
    }


}
